<template>
  <div class="card">
    <div class="card-title">
      {{title}}
      <i></i>
      <div v-if="btns.length > 0" class="card-btns">
        <span
          @mouseover="onMouseover(index)"
          :class="{active: index === current}"
          v-for="(item, index) in btns"
          :key="index"
        >{{item}}</span>
      </div>
    </div>
    <div class="card-content">
      <!-- 插槽：
      1. 这里的东西传进来的
      2. 复杂的 HTML 结构
      -->
      <slot></slot>
    </div>
  </div>
</template>

<script>
export default {
  props: {
    title: {
      type: String,
      required: true
    },
    btns: {
      type: Array,
      // 当属性是对象或者数组时，必须使用一个函数来设置默认值 ！！！！
      default: function() {
        return [];
      }
    }
  },
  data() {
    return {
      current: 0 // 当前选中的按钮的下标
    };
  },
  methods: {
    // 当鼠标放到按钮上时触发的函数
    onMouseover(i) {
      this.current = i;
      // 把这个事件和下标发给父组件
      // 参数一：事件名称
      // 参数二：数据
      this.$emit("change", i);
    }
  }
};
</script>

<style lang="scss">
.card {
  background: #fff;
  &-title {
    padding: 13px;
    color: #000;
    font-size: 25px;
    font-weight: bold;
    i {
      display: inline-block;
      width: 16px;
      height: 16px;
      background: url("https://misc.360buyimg.com/mtd/pc/index_2019/1.0.0/assets/sprite/tit_arrow/sprite@2x.png")
        no-repeat;
      background-size: 32px;
      background-position-x: -16px;
    }
    &:hover {
      i {
        background-position-x: 0;
      }
    }
  }
  &-btns {
    float: right;
    span {
      padding-bottom: 4px;
      color: #aaa;
      margin-left: 25px;
      font-size: 15px;
      font-weight: normal;
      cursor: pointer;
      &.active {
        color: red;
        border-bottom: 2px solid red;
      }
    }
  }
}
</style>